package com.demo.tcs;

import javax.swing.*;
import java.awt.*;
import java.awt.font.TextAttribute;
import java.util.HashMap;
import java.util.Map;

public class CreateDesk
{
    // 游戏开始方法
    public static void GameStart()
    {
        // 使用SwingUtilities.invokeLater()方法来启动游戏
        SwingUtilities.invokeLater(() ->
        {
            start(true);
        });
    }

    // 游戏启动方法
    private static void start(boolean flag)
    {

        // 创建游戏窗口
        JFrame frame = new JFrame("贪吃蛇大作战");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(800, 600);
        frame.setLocationRelativeTo(null); // 居中显示
        // 创建主面板并设置黑色背景
        JPanel panel = new JPanel();
        panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
        panel.setBackground(Color.BLACK);
        // 添加顶部间距
        panel.add(Box.createVerticalStrut(130));
        // 添加艺术字和按钮
        panel.add(createGameTitle());
        panel.add(Box.createVerticalStrut(60)); // 增加间距
        panel.add(createStartButton());
        frame.add(panel);
        frame.setVisible(flag);
    }

    // 生成贪吃蛇大作战艺术字
    private static JLabel createGameTitle()
    {

        // 1. 创建艺术字效果的JLabel
        JLabel styledLabel = new JLabel("贪吃蛇大作战");
        styledLabel.setHorizontalAlignment(SwingConstants.CENTER);

        // 设置艺术字样式
        Font baseFont = new Font("华文行楷", Font.BOLD, 48);

        // 创建字体属性映射
        Map<TextAttribute, Object> attributes = new HashMap<>();
        attributes.put(TextAttribute.FONT, baseFont);
        attributes.put(TextAttribute.FOREGROUND, new GradientPaint(
                0, 0, Color.RED,
                100, 0, Color.BLUE,
                true)); // 渐变颜色效果
        attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON); // 下划线
        attributes.put(TextAttribute.STRIKETHROUGH, TextAttribute.STRIKETHROUGH_ON); // 删除线

        // 应用艺术字效果
        Font styledFont = Font.getFont(attributes);
        styledLabel.setFont(styledFont);
        styledLabel.setOpaque(true);
        styledLabel.setBackground(Color.BLACK);
        styledLabel.setForeground(Color.WHITE);
        styledLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
        return styledLabel;
    }

    // 生成开始游戏按钮
    private static JButton createStartButton()
    {
        JButton startButton = new JButton("开始游戏");

        // 设置按钮样式
        startButton.setFont(new Font("SimHei", Font.BOLD, 24));
        startButton.setBackground(Color.RED);
        startButton.setForeground(Color.WHITE);
        startButton.setFocusPainted(false);
        startButton.setPreferredSize(new Dimension(200, 60));
        startButton.setAlignmentX(Component.CENTER_ALIGNMENT);

        // 添加按钮点击事件（示例：打印日志）
        startButton.addActionListener(e ->
        {
            System.out.println("开始游戏按钮被点击！");
            // 这里可以添加游戏启动逻辑
        });

        return startButton;
    }
}